#ifndef _TIMER_QUEUE_ITERATOR_H_
#define _TIMER_QUEUE_ITERATOR_H_

#include "Timer_Node.h"

template <class TYPE>
class Timer_Queue_Iterator
{
public:

	/// Constructor.
	Timer_Queue_Iterator (void) {}

	/// Destructor.
	virtual ~Timer_Queue_Iterator (void) {}

	/// Positions the iterator at the earliest node in the Timer Queue
	virtual void first (void) = 0;

	/// Positions the iterator at the next node in the Timer Queue
	virtual void next (void) = 0;

	/// Returns true when there are no more nodes in the sequence
	virtual int isdone (void) const = 0;

	/// Returns the node at the current position in the sequence
	virtual Timer_Node<TYPE> *item (void) = 0;
};

#endif//_TIMER_QUEUE_ITERATOR_H_